/**
 * @author
 * @createtime
 * @class AdminContractForm
 * @extends Ext.Window
 * @description AdminContract表单
 */
AdminContractForm = Ext.extend(Ext.Window, {
	//内嵌FormPanel
	formPanel : null,
	//构造函数
	constructor : function(_cfg) {
		Ext.applyIf(this, _cfg);
		//必须先初始化组件
		this.initUIComponents();
		AdminContractForm.superclass.constructor.call(this, {
			id : 'AdminContractFormWin',
			layout : 'fit',
			items : this.formPanel,
			modal : true,
			width : 700,
			height : 400,
			maximizable : true,
			title : '[行政合同评审表]详细信息',
			buttonAlign : 'center',
			buttons : this.buttons
		});
	},//end of the constructor
	//初始化组件
	initUIComponents : function() {
		this.formPanel = new Ext.FormPanel({
			layout : 'form',
			trackResetOnLoad : true,
			bodyStyle : 'padding:10px 10px 10px 10px',
			border : false,
			url : __ctxPath + '/admin/saveAdminContract.do',
			id : 'AdminContractForm',
			defaults : {
				anchor : '98%,98%'
			},
			defaultType : 'textfield',
			items : [{
						name : 'adminContract.id',
						id : 'id',
						xtype : 'hidden',
						value : this.id == null ? '' : this.id
					},{
					xtype : 'container',
					layout : 'column',
					height : 25,
					defaults : {
						xtype : 'label',
						style : {
							margin : '0px 0px 3px 0px'
						}
					},
					items : [{
								text : '合同内容：',
								columnWidth : .15
							}, {
								xtype : 'textfield',
								name : 'adminContract.content',
								id : 'content',
								allowBlank : false,
								maxLength : 64,
								columnWidth : .3
							}, {
								text : '合同编号：',
								style : 'margin-left:10px;',
								columnWidth : .15
							}, {
								xtype : 'textfield',
								name : 'adminContract.contractNo',
								id : 'contractNo',
								columnWidth : .3,
								readOnly:true,
								emptyText:'系统自动生成',
								maxLength : 64
//								allowBlank : false
							}]
				}, {
					xtype : 'container',
					layout : 'column',
					height : 25,
					defaults : {
						xtype : 'label',
						style : {
							margin : '0px 0px 3px 0px'
						}
					},
					items : [{
								text : '我方合同代表：',
								columnWidth : .15
							}, {
								xtype : 'textfield',
								name : 'adminContract.ourRepresent',
								id : 'ourRepresent',
								allowBlank : false,
								maxLength : 64,
								columnWidth : .3
							}, {
								text : '合同他方：',
								style : 'margin-left:10px;',
								columnWidth : .15
							}, {
								xtype : 'textfield',
								name : 'adminContract.secondPartyUnit',
								id : 'secondPartyUnit',
								allowBlank : false,
								maxLength : 64,
								columnWidth : .3
							}]
				}, {
					xtype : 'fieldset',
					title : '合同要点',
					width : '80%',
					items : [{
								xtype : 'container',
								layout : 'column',
								height : 25,
								defaults : {
									xtype : 'label',
									style : {
										margin : '0px 0px 3px 0px'
									}
								},
								items : [{
											text : '合同形式：',
											columnWidth : .15
										}, {
											xtype : 'combo',
											hiddenName : 'adminContract.contractForm',
											id : 'contractForm',
											triggerAction : 'all',
											editable : false,
											allowBlank : false,
											mode : 'local',
											store : ['固定单价', '固定总价','其他'],
											columnWidth : .3
										}, {
											text : '合同价款：',
											style : 'margin-left:10px;',
											columnWidth : .15
										}, {
											xtype : 'numberfield',
											name : 'adminContract.contractAmount',
											id : 'contractAmount',
											regex:/^(([1-9]\d{0,9})|0)(\.\d{1,2})?$/,
											regexText:'请输入正确格式的金额',
											allowBlank : false,
											columnWidth : .3,
											maxLength:9
										}, {
											text : '元'
										}]
							},{
								xtype : 'container',
								layout : 'column',
								height : 25,
								defaults : {
									xtype : 'label',
									style : {
										margin : '0px 0px 3px 0px'
									}
								},
								items : [{
											text : '付款方式：',
											columnWidth : .15
										}, {
											xtype : 'textfield',
											name : 'adminContract.payType',
											id : 'payType',
											allowBlank : false,
											columnWidth : .75,
											maxLength:64
										}]
							},{
								xtype : 'container',
								layout : 'column',
								height : 25,
								defaults : {
									xtype : 'label',
									style : {
										margin : '0px 0px 3px 0px'
									}
								},
								items : [{
											text : '违约条款约定：',
											columnWidth : .15
										}, {
											xtype : 'textfield',
											name : 'adminContract.appointment',
											id : 'appointment',
											allowBlank : false,
											columnWidth : .75,
											maxLength:64
										}]
							},{
								xtype : 'container',
								layout : 'column',
								height : 25,
								defaults : {
									xtype : 'label',
									style : {
										margin : '0px 0px 3px 0px'
									}
								},
								items : [{
											text : '合同数量：',
											columnWidth : .15
										},{
											text : '原件共：',
											style : 'margin-left:20px;'
										}, {
											xtype : 'numberfield',
											name : 'adminContract.originalCopyNum',
											id : 'originalCopyNum',
											allowBlank : false,
											columnWidth : .15,
											maxLength:8
										},{
											text : '份,返回对方'
										}, {
											xtype : 'numberfield',
											name : 'adminContract.giveCopyNum',
											id : 'giveCopyNum',
											allowBlank : false,
											columnWidth : .15,
											maxLength:8
										},{
											text : '份'
										}
										]
							}, {
								xtype : 'container',
								autoHeight : true,
								layout : 'column',
								autoWidth : true,
								defaultType : 'label',
								style : 'padding-left:0px;padding-bottom:5px;',
								items : [{
											text : '附件:',
											columnWidth : .15,
											style : "margin-top:15px;"
										}, {
											xtype : 'hidden',
											name : 'adminContract.attachIds',
											id : 'adminContract.attachIds'
										}, {
											xtype : 'hidden',
											name : 'adminContract.attachFiles',
											id : 'adminContract.attachFiles'
										}, {
											xtype : 'panel',
											id : 'adminContract.displayAttach',
											columnWidth : .75,
											height : 65,
											frame : false,
											autoScroll : true,
											style : 'padding-left:10px;padding-top:0px;',
											html : ''
										}, {
											xtype : 'button',
											iconCls : 'btn-upload',
											text : '上传',
											handler : function() {
												var dialog = App.createUploadDialog({
													file_cat : 'flow/adminContract',
													callback : function(data) {
														var attachFiles = Ext.getCmp("adminContract.attachFiles");
														var fileIds = Ext.getCmp('adminContract.attachIds');
														var display = Ext.getCmp('adminContract.displayAttach');
														display.body.update('');
														attachFiles.setValue('');
														fileIds.setValue('');
														for (var i = 0; i < data.length; i++) {
															if (fileIds.getValue() != '') {
																fileIds.setValue(fileIds.getValue() + ',');
																attachFiles.setValue(attachFiles.getValue() + ',');
															}
															attachFiles.setValue(attachFiles.getValue() + data[i].filepath + ":"
															+ data[i].filename.replace(/\s+/g, ""));
															fileIds.setValue(fileIds.getValue() + data[i].fileId);
															Ext.DomHelper.append(display.body, '<span><a href="#" onclick="FileAttachDetail.show('
															+ data[i].fileId + ')">' + data[i].filename.replace(/\s+/g, "") + '</a>&nbsp;|&nbsp;</span>');
														}
													},
													permitted_max_size : 1024 * 1024 * 20
												});
												dialog.show(this);
											}
										}]
							}]
				}]
		});
		//加载表单对应的数据	
		this.initData();
		//初始化功能按钮
		this.buttons = [{
					text : '保存',
					iconCls : 'btn-save',
					handler : this.save.createCallback(this.formPanel, this)
				}, {
					text : '重置',
					iconCls : 'btn-reset',
					handler : this.reset.createCallback(this.formPanel)
				}, {
					text : '取消',
					iconCls : 'btn-cancel',
					handler : this.cancel.createCallback(this)
				}];
	},//end of the initcomponents
	/**
	 * 初始化数据
	 * 
	 * @param {}
	 *            formPanel
	 */
	initData : function() {
		//加载表单对应的数据	
		if (this.id != null && this.id != 'undefined') {
			this.formPanel.getForm().load({
				deferredRender : false,
				url : __ctxPath + '/admin/getAdminContract.do?id=' + this.id,
				waitMsg : '正在载入数据...',
				success : function(form, action) {
					var jsonData = Ext.util.JSON.decode(action.response.responseText);
					var res = jsonData.data;
					var attachId = res.attachIds;
					var attachFile = res.attachFiles;
					if(attachId!= null && attachId != 'undefined' && attachFile!= null && attachFile != 'undefined'){
						Ext.getCmp("adminContract.attachIds").setValue(res.attachIds);
						Ext.getCmp("adminContract.attachIds").originalValue = res.attachIds;
						Ext.getCmp("adminContract.attachFiles").setValue(res.attachFiles);
						Ext.getCmp("adminContract.attachFiles").originalValue = res.attachFiles;
						var ids = attachId.split(',');
						var files= attachFile.split(',');
						for(var i=0;i<ids.length;i++){
							if(files[i].lastIndexOf(':')!=-1){
								  var fg = files[i].split(':');
								  Ext.DomHelper.append(Ext.getCmp('adminContract.displayAttach').body,'<span><a href="#" onclick="FileAttachDetail.show('+ids[i]+')">'+fg[1].replace(/\s+/g,"")+'</a>&nbsp;|&nbsp;</span>');
							}
						}
					}
					//Ext.getCmp("").originalValue=
				},
				failure : function(form, action) {
				}
			});
		}
	},
	/**
	 * 重置
	 * 
	 * @param {}
	 *            formPanel
	 */
	reset : function(formPanel) {
		formPanel.getForm().reset();
	},
	/**
	 * 取消
	 * 
	 * @param {}
	 *            window
	 */
	cancel : function(window) {
		window.close();
	},
	/**
	 * 保存记录
	 */
	save : function(formPanel, window) {
		if (formPanel.getForm().isValid()) {
			formPanel.getForm().submit({
				method : 'POST',
				waitMsg : '正在提交数据...',
				success : function(fp, action) {
					Ext.ux.Toast.msg('操作信息', '成功保存信息！');
					var gridPanel = Ext.getCmp('AdminContractGrid');
					if (gridPanel != null) {
						gridPanel.getStore().reload();
					}
					window.close();
				},
				failure : function(fp, action) {
					Ext.MessageBox.show({
						title : '操作信息',
						msg : '信息保存出错，请联系管理员！',
						buttons : Ext.MessageBox.OK,
						icon : Ext.MessageBox.ERROR
					});
					window.close();
				}
			});
		}
	}//end of save

});